# 分析：
# 1.
# 定义人类，描述公共属性
# life: 100
# name: 姓名要传参
# 2.
# 定义出英雄与恐怖分子类
# 3.
# 定义主函数描述枪战过程
# main，创建两个对象
# 4.
# 定义开枪方法，分成两个方法，Hero
# Is都有
# 定义的方法要传入被射击的对象
# 被射击对象的生命值要进行减少
# 5.
# 主程序中调用开枪操作
# 6.
# 开枪操作后，要在主程序中显示每个人的状态信息
# 7.
# 定义Person类的__str__方法，用于显示每个人的状态
# 8.
# 设置开枪操作为反复操作
# 再设置停止条件：一方生命值 <= 0
# 停止循环使用break
class People:
    def __init__(self,name=None):
        self.life=100
        self.name=name
    def __str__(self):
        return  f"{self.name}当前的生命值为：{self.life}"
class Hero(People):
    def fire(self,p):  #p---->匪徒这个对象   self：警察
        shanghai=10
        print(f"{self.name}向{p.name}开枪，造成{shanghai}点伤害")
        p.life-=shanghai
class Is(People):
    def fire(self, p):
        shanghai = 5
        print(f"{self.name}向{p.name}开枪，造成{shanghai}点伤害")
        p.life -= shanghai
def main():
    h = Hero("【英雄】")
    print(h)
    is1 = Is("【匪徒】")
    print(is1)
    while True:
        h.fire(is1)
        is1.fire(h)
        print(h)
        print(is1)
        # 设置结束条件
        if h.life <= 0:
            print(f"{h.name}死亡，枪战结束")
            break
        if is1.life <= 0:
            print("所有恐怖份子全部死亡，枪战结束")
            break

main()

